﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TMS.formularios
{
    public partial class UIaError : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //Carga la lista del enum tipoImportancia en la DropDownList ddImportancia
                ddImportancia.DataSource = Enum.GetNames(typeof(tipoImportancia));
                ddImportancia.DataBind();
                //carga el dropdown de aplicaciones.
                loadAppList();
            }
        }
        public void limpiarForm()
        {
            txtDescripcion.Text = "";
        }
        public void loadAppList()
        {
            //Carga el DropDownList de Aplicaciones.
            ddAplicacion.Items.Clear(); // Borra el contenido de la lista de aplicaciones disponibles.
            ListItem unL = new ListItem("Elija una aplicacion...", "" + 0);
            ddAplicacion.Items.Add(unL);
            foreach (Aplicacion ap in Dios.getInstancia().listarApps())
            {
                ListItem l = new ListItem(ap.Nombre, "" + ap.Id);
                ddAplicacion.Items.Add(l);
            }
            ddAplicacion.SelectedIndex = 0;
        }
        public void loadDDLModulo(long appId)
        {
            ddModulo.Items.Clear();
            List<Modulo> modlist = Dios.getInstancia().listarModsByAppId(appId);
            //Si la aplicacion contiene modulos...
            if (modlist.Count() != 0)
            {
                ListItem unL = new ListItem("Elija un modulo...", "" + 0);
                ddModulo.Items.Add(unL);
                foreach (Modulo mo in modlist)
                {
                    ListItem l = new ListItem("" + mo.Nombre, "" + mo.Id);
                    ddModulo.Items.Add(l);
                }
            }
            else
            {
                //Si no contiene modulos carga un aviso indicandolo en el listbox.
                ListItem unL = new ListItem("La aplicacion no contiene modulos...", "" + 0);
                ddModulo.Items.Add(unL);
            }
            ddModulo.SelectedIndex = -1;
        }

        protected void ddAplicacion_SelectedIndexChanged(object sender, EventArgs e)
        {
            limpiarForm();
            loadDDLModulo(long.Parse(ddAplicacion.SelectedValue));
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            if (ddAplicacion.SelectedValue != "0" && ddModulo.SelectedValue != "0" && txtDescripcion.Text != "")
            {
                string apli = "" + ddAplicacion.SelectedItem.Text;
                string mod = "" + ddModulo.SelectedItem.Text;
                string des = txtDescripcion.Text;
                string impor = "" + ddImportancia.SelectedItem.Text;
                string usu = "" + Session["idUsuario"];
                Dios.getInstancia().nuevoError(apli, mod, des, impor, usu);
            }
        }
    }
}